package visao;

import java.awt.BorderLayout;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JLabel;
import javax.swing.UIManager;

import modelo.Cliente;
import modelo.Funcionario;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JMenuItem;

import de.javasoft.plaf.synthetica.SyntheticaBlackEyeLookAndFeel;
import javax.swing.ImageIcon;
import de.javasoft.plaf.synthetica.SyntheticaSimple2DLookAndFeel;

/**
 * autor fernando_miara
 * 
 * classe de interface Menu 
 */

public class Menu extends JFrame {

	/**
	 * Metodos do menuItem
	 */
	private JPanel contentPane;
	private Funcionario funcionario;
	private Cliente cliente;
	private int status;
	private JMenu mnCadastros;
	private JMenuItem btnFuncionario;
	private JMenuItem btnIngresso;
	private JMenuItem btnEvento;
	private JMenuItem btnEstadio;
	private JMenuItem btnIngressoB;
	private JMenuItem btnTime;
	private JMenuItem btnCliente;


	/**
	 * Launch the application.
	 */
	/**
	 * Metodo abre tela caso login seja funcionario
	 */
	protected void abreTela(int status, Funcionario funcionario){
		this.funcionario = funcionario;
		this.status= status;
		mnCadastros.setEnabled(true);
		
	}
	
	/**
	 * Metodo abre tela caso login seja cliente
	 */
	protected void abreTela(int status, Cliente cliente){
		this.cliente = cliente;
		this.status=status;
		mnCadastros.setEnabled(false);
		
	}
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					UIManager.setLookAndFeel(new SyntheticaSimple2DLookAndFeel());
					Menu frame = new Menu();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public Menu() {
		setTitle("Menu");
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		
		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);
		
		mnCadastros = new JMenu("Cadastros");
		menuBar.add(mnCadastros);
		
		/**
		 * bot@o do menuItem para abrir a tela cadastro cliente 
		 */
		btnCliente = new JMenuItem("Cliente");
		btnCliente.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				CadastroCliente cadCli = new CadastroCliente();
				cadCli.abreTela(status,funcionario);
				cadCli.setVisible(true);
				dispose();
				
			}
		});
		mnCadastros.add(btnCliente);
		
		/**
		 * bot@o do menuItem para abrir a tela cadastro Funcionario 
		 */
		btnFuncionario = new JMenuItem("Funcionario");
		btnFuncionario.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				CadastroFuncionario cadFun = new CadastroFuncionario();
				cadFun.abreTela(status,funcionario);
				cadFun.setVisible(true);
				dispose();
			}
		});
		mnCadastros.add(btnFuncionario);
		
		/**
		 * bot@o do menuItem para abrir a tela verde ingresso
		 */
		btnIngresso = new JMenuItem("Ingresso");
		btnIngresso.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
			}
		});
		
		
		/**
		 * bot@o do menuItem para abrir a tela cadastro evento
		 */
		btnEvento = new JMenuItem("Evento");
		btnEvento.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				CadastroEvento cadEve = new CadastroEvento();
				cadEve.abreTela(status,funcionario);
				cadEve.setVisible(true);
				dispose();
			}
		});
		mnCadastros.add(btnEvento);
		
		/**
		 * bot@o do menuItem para abrir a tela cadastrar time 
		 */
		btnTime = new JMenuItem("Time");
		btnTime.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				CadastroTime cadTime= new CadastroTime();
				cadTime.abreTela(status,funcionario);
				cadTime.setVisible(true);
				dispose();
			}
		});
		mnCadastros.add(btnTime);
		
		/**
		 * bot@o do menuItem para abrir a tela cadastrar estadio 
		 */
		btnEstadio = new JMenuItem("Estadio");
		btnEstadio.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				CadastroEstadio cadEsta= new CadastroEstadio();
				cadEsta.abreTela(status,funcionario);
				cadEsta.setVisible(true);
				dispose();
			}
		});
		mnCadastros.add(btnEstadio);
		
		JMenu mnVender = new JMenu("Vender");
		menuBar.add(mnVender);
		/**
		 * bot@o do menuItem para abrir a tela verde ingresso
		 */
		btnIngressoB = new JMenuItem("Ingresso");
		btnIngressoB.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				VenderIngresso venIng = new VenderIngresso();
				if(funcionario != null){
					venIng.abreTela(status,funcionario);
				}else if (cliente != null){
					venIng.abreTela(status,cliente);
				}
				venIng.setVisible(true);
				dispose();
			}
		});
		mnVender.add(btnIngressoB);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lblLogomarca = new JLabel("");
		lblLogomarca.setIcon(null);
		lblLogomarca.setBounds(99, 6, 306, 242);
		contentPane.add(lblLogomarca);
	}
}
